GenEd Advice
(MAKE SURE TO TURN WORD WRAP ON!!!!)


1.	General

Some general level design guidelines that apply to any game:

Test, test, test. Always play the mission many, many times. Get people who have played the game to try it. Get people who have never played before to play it. Get anyone you can strap to a chair to play it.

When people are playing your mission, watch them. Sure, you could just ask them about it later, but comments are generally vague and not useful. If you watch someone play, you can see what sort of strategies they try and see where they struggle.
When someone is playing the mission, dont try to help them. If they cant find the enemy base or cant figure out what the objective means, sure, you could just tell them. But once you go public with the mission, you wont be able to be staring over every persons shoulders. See how they try to resolve their confusion so you know how to help everyone.

If someone is playing and has trouble with something, its your fault, not theirs. Dont make excuses. If they couldnt figure out what to do, dont say Well, you should have read the messages that appeared. They explained it perfectly. Again, all the people who play it without you over their shoulder wont be able to hear your excuses. If the player thinks there is a problem, then there is a problem. Even if the player is just being stupid. Your mission should account for stupid people.



2.	Communication

One of the great things about GC/GenEd is that designers get so many different ways to communicate to the player. You can have MessageBoxes appear, you can add PointObjectives, you can put things in the briefing, and you can have things change in the game world. Use all the tools you have. Getting the player to understand what he is supposed to do is the largest challenge for any game designer. The easier it is, the more fun the player has.

Corollary: In any single player mission, the player should always have at least one PointObjective active. The player should always be able to go to his big map and find out what he should do next. And for <insert deity of your choice>s sake, make sure your PointObjectives are understandable. The detailed text should be simple, direct, straight-forward statements of what the player should do. Dont say Save the princess; say Move your APC into the castle to save the princess.



3.	Nulls

One of the most useful additions weve added to GenEd is the null object. This is a tiny, invisible, intangible object that doesnt directly interact with anything else in the game. No one can see it, no one can shoot it, no one can bump into it. All it can do is have a location, and move around if you give it orders. While this may sound limiting, its actually very, very useful.

The most common use for Nulls is to organize the behavior of a group of AI-controlled enemies. If you give a bunch of enemies the same movement order, theyll all move at their own speeds, and thus get all spread out. Want the bad guys to march in a nice formation and not get too far from each other? Have them all follow a null. As long as the null moves at about the same speed as the enemy forces (or a little slower), they will all stay in a nice, neat group. Sure, you could try to get the same effect by having enemies follow each other, but then you have to worry about what will happen when one of those units is killed. If everyone is following one heavy tank, and that heavy tank gets a special weapon up the exhaust pipe, then your formerly organized army is going to be running around like a gaggle of chickens with their heads cut off. Nulls can never be killed, so you never have to worry about the chicken problem.

Another neat null trick (that I dont think we used in our missions) is getting a permanent lock on the players APC. Normally, you can tell when the APC does specific trigger actions, but since the APC is not a unit that was placed in GenEd, you cant directly refer to it in your GenEd commands. The solution is to create a null at the start of the mission, and have it SetFallbackOrder(Follow/Affector) on your CommandAPCEnterArea trigger that you already have set up for your Dropscript (assuming youre following standard Massive script style). Now you have an object that you can directly refer to in any script that will always be lurking just below the players APC. Sure, you cant attack it, but you can do all sorts of fun things with follow triggers. Remember how in the first game you always had a sense of security because the AI would always attack your front line, leaving your APC safe in the back? Now you can take away that security and make the player sweat a little by sending in a wave of aerodynes (for example) that specifically track his APC.



4.	EnterArea

One nice aspect of the TeamEnterArea trigger is that it checks the interior when you place it. So, for example, you can place a big huge TeamEnterArea circle over the majority of the map, and you are sure to find one of the players units. Using Affected (or is it Affector? I always forget) you can then target that unit. This trick can give you a way for AI units to track player units that are outside of visual range. Sure, its cheating, but if you use it right, it will make the mission more fun rather than make it seem unfair.



5.	Follow

SetFallbackOrder: Follow is really your main tool in giving the enemies something resembling AI. DirectOrder: Attack is really just for very special cases; in most cases, if you want an enemy to attack someone, Follow is the best way to do it. Theyll try to get up close, and once theyre close to an enemy, the attacking is natural. And unlike Attack, Follow is persistent, so they wont stop trying if they get distracted.



6.	Aggressive

IMHO, you generally want most AI unit to be SetBehavior: Aggressive. It means theyll keep chasing whoever theyre attacking, and will only return to their movement fallback orders when they lose sight of their target. Since the main reason to include enemies is to have them attack, this usually makes the most sense. And unless they have somewhere really important to go, it doesnt really make sense for an army unit to say Look! Some enemies! I better keep moving along this pre-set path instead of intercepting them!



7.	Anti-Artillery

As we all know, artillery is dominant in this game. Many missions can be won by simply pounding the enemy from as far away as possible. As level designers, we want to discourage this. If the players get too settled into one simple strategy, the game gets boring. So what can we do to discourage artillery use? Well, the first thing to do is to vary the goals a bit so that kill slowly from a distance doesnt work; Ill talk more about that later. Lets assume that the players goal is to destroy some structure or base or army. Within this goal, how do we keep artillery from entirely dominating?

My primary suggestion is liberal use of WhenKilled triggers. Pick a few key units in the enemy base or army and when they are killed, give a few fast attack units SetFallbackOrder: Follow: Affector orders, preferably with DirectOrder: Attack: Affector as well. (And to make sure, duplicate the DirectOrder a dozen or so times so it keeps trying for a little while.) This will send a counter-attack against whoever destroyed that AI unit. If the player is using artillery, the counter-attack will be focused against the artillery. This is an attempt to more accurately simulate what a real human player would do when attacked with artillery.

Depending on the map, you might also be able to hinder artillery with your enemy placement. Players generally like to keep the artillery to the rear of their force, to keep it safe. If there is a particular route that players prefer to use when attacking the base/army, set a few quick units on the side of that route. At a set time, have them move into the position where you expect to find the player. The time could either be the WhenKilled trigger defined above or a TeamEnterArea for when the player enters the ambush.


 
8.	Emplaced Guns

Quick note: If you want to make an enemy base hard to get into, use wallguns, artillery, and anti-air guns. If you want to make it near-impossible, include defender guns. Any other stationary gun is there just for show, and to check to see if the player is awake.



9.	Warmup on Scouts

Especially on easier missions, its good to include a few wandering units that are little to no challenge for the player. Scout vehicles, light tanks, scout aerodynes, etc. (I would include infantry in this list, but they can take annoyingly long to kill depending on what units the player has.) They dont really make the game more difficult, but they get the player ready for the real battle. And they can help make long marches more exciting by making the player worry that a larger force may be right behind the scouts.



10.	Think Goals

Big concept here: Goals. GenEd is a flexible engine. You can end the game whenever and whyever you want. There are already lots of killkillkill missions out there; theyre basically the default. If you want to make cool missions that attract peoples attention, find interesting new goals that still work with the basic engine.

This is especially true for multiplayer. One note, though: Make sure that any multiplayer goals are easy to understand and are explained repeatedly. Not knowing what you are supposed to do is bad.

Remember what I said up above about communication? This section is why communication is important. You can come up with the most interest, exotic goals possible, but if the player cant understand what he is supposed to do, you might have well have made the goal Suffer for a while and then quit the game angry cause thats what youll get.

Some sample goal ideas: Search n Destroy; Guard/Protect; Timed Attack; Stealth.



11.	Mix up the dropzones in multiplayer

a.	I heartily recommend at least two dropzones per player for any multiplayer mission, just to discourage camping.

And lastly... Have fun!!!!! 
